In NAND flash memory which is one type of semiconductor memory device, data is programmed by changing the threshold of a memory cell transistor by storing a charge in a floating gate electrode. On the other hand, the data that is programmed is read by applying a prescribed potential to the control electrode of the memory cell transistor and determining whether the memory cell transistor is in an ON state in which a current flows or an OFF state in which the current does not flow.